Skip to main content

Full text of "IQLR (International QL Report)"

See other formats


INTERNATIONAL QL REPORT 


The Definitive Information Source 


Published by SeaCoast Services 


In This Issue ) 
§ 
WOE 


Helpful Hints - Dilwyn Jones 

Super Disk Index - Review by Alan Hodge 
Matcher - Archive Program by Bill Cable 
CGP-220 Color Printer Converter by T. Penrose 
Page Designer 2 Plus 

C-68 Compiler- New Version Received 
Hermes Co-Processor from QView 
eFORTH Compiler by Salvador Merino 
maus.comp.ql by Franz Herrman 

Copying MSDOS Files by Mel LaVerne 
Flightdeck - Review by Joe La Punzina 

QL Spares and Repairs - Bob Dyl 

Lonely Joker - Review by Dick Taylor 
New From Jochen Merz Software 

News From Miracle Systems 


RRM MAMAQA MAM AO MOI A AOOAPsg- AOA AF SAO 


HLULILUTULILULULLLLTULLLLTLEELEE 


July/August 
1992 


Vol. 2 No. 2 $5.00 
15 Kilburn Court, Newport, Rhode Island, USA 02840 


Merzisonware 


Software. |DevelopmentL1QU—solteaHardware\Distributor, > socal apa 


iTelephoneyand| 


tinestllsn Wii ta = RG Delish 
Gtrte CAND SIERO Gamay 


NEWS .. NEWS .. NEWS 


QD Version 4 - The first (and only) Editor using the PE. Dynamic memory allo- 
cation, no limit on nrs of lines, comfortable block-hondling ond meny, mony 
new feotures, e.g. improved print menu, better seorch/reploce, GOTO Proce. 
dure ond Function, even Machine code label. With new Menu Config which oF 
lows you to configure all programs using the stondord CONFIG block, but menu 
driven. £38 DM 112,10 $60.80 


QMenu ~ the Menu Extension V3_ QMenu is o very ensy to use intedoce 
with pre-defined menus (e.g. multi~column file-select, simplechoice boxes, se- 
lect from lists, error handling). These menus may be used from SuperBASIC, mo- 
chine code ond other longuoges. £13 DM 38,35 $20.80 


QSUP ~ System Utility Package _ Different sorts of progroms and exter- 
sions which help you setting up and using your machine (e.g. Tronslotion-Toble 
Editor, Notepod). £26 DM 76,70 $41.60 


Thing & EPROM Manager Do you wont to put your Extensions, Things, Jobs 
etc. into EPROM? The EPROM Manoger helps you by creating files which ore 
ready-to-burn. It contains also the very useful Thing Extenion I, which gives 
you full control over Things from SuperBASIC. £18.50 DM 54,58 $29.60 


Fifi - the FileFinder Running under the PE, Fifi is easy to use ond extremely 
useful. FF scons devices or directory trees ond searches files or filenames for 
strings. Combinations ore possible, e.g. String] AND string? BUT NOT string3 
etc. £13 DM 38,25 $20.80 


DISA - Intelligent Disassembler which ollows you to disossemble interok- 
tively ony kind of mochine-code. Pointer-controlled. £27 DM 80 $44 


QDOS Reference Manual ~ This book is o must for all m-code progrom 
mers, It explains how to use QDOS, all trops ond vectors, the Thing System, the 
HOTKEY System Il ond much more. It points out which features work on o QL. 
‘on Emulator and how to write compatible for future operating systems. DIN AS, 
over 170 poges. £27 DM 80 $44 


QPTR - The Pointer Environment Toolkit Revised monual which describes 
how to use the Pointer Interface and the Window Manager from SuperBASIC 
‘ond machine code, even how to setup stondard CONFIG tables. QPTR comes 
with examples on disc. All necessary keys, mocros ond extensions for SupeSA- 
SiCore supplied. £30 DM 88,50 $48 


FLP/RAM Level 2 — Replacement EPROM for SuperQBoards (V1.17 onwards, 
with & without mouse) or TrumpCard (please specify}! Reol subdirectories! QL- 
Emulator and Gold~Cord compatible! With ATR-device (to reod ond write MS- 
DOS/ATARI discs). About twice os fost, with improved slave-block-handling! 
(NotJM ROMs!) £18 DM 53,10 $28.80 


EASYPTR II - Creote your own PE menus & sprites, use them in your own Su 
perBASIC or machine-code programs. Creating Menus was not eosy, until now! 
Put oll the items you need on screen, that's it! Mony exomples ond improved 
manuel! £49 DM 144,55 $78.40 


QDesign Il ~ Graphic— and Design-program. Running completely under 
the PE! Supports the Extended Mode4. Do you think onything else is to soy 
bout a very good graphics progrom?! 

For all 9 ond 24 pin printers, Deskjet ond Loserjet £48 DM 140 $77 
Font-Vector-Editor for QDesign £19 DM 56,05 $30.40 


SYSTEM ~ System Tools for QDOS: reol file-ottributes ore odded, eg. 
write-only, hidden or for selected users only. Works even over net ond on winch 
ester. New TRAPE3. New devices (equivalent to Ql-Emulotor): nomed pipes, 
MEM, NUL 80 new procs & functions, e.g. WSET_FATTR. WSET_FIYPE, 
WSET_FVERS, ADIR, ASTAT; HK_GETBFS. £27.50 DM 85,- $45 

NEW: SER Mouse ~ Software driver which allows you to connect a serial 
(e.g. DOS) mouse to one of the serial ports of the Ql which then mimics the 
QIMI interface. In addition to the functions of the QIMI, if you have o 
three-button mouse the following features are available: ESC on centre 
button, lefttcentre is Wake, right+centre is Sleep. £14.90 DM 44 $25 
2X8301 £5.90 DM 17,41 $9.44 

2X8302 £5.90 DM 17,41 $9.44 


QL-Emulator for ATARI ST 
If you are interested in buying a Ql-Emulator for the ATARI ST ronge and 
you still do not know what you will get, then you should write to get more 
information. £139 DM 376 $225 


New Emulator initialisation software together with Level E.15 or 
higher plus full support of 68020/68030 boards is coming soon! 


Jochen Merz Software is the largest supplier of high quality software that runs under QUUMP’s Pointer Environment 
(PE). This hardware-independent environment is the very advanced and easy to use windowing system for QDOS, that 
is the path to the future for QL users. We support the PE by supplying software development tools, documentation and 
the QL-Emulator. For more details on our complete range of products write or send a fax! 


Diamonds £11 DM 32,45 $17.60 
BrainSmasher £12 DM 35.40 $19.20 
Arcanoid £10 DM 29,50 $16 
Firebirds £10 DM 29,50 $16 
SuperGamesPack £25 DM73,75 $40 
QShang £14 DM 41,30 $22.40 


The lonely Joker! 
The lonely Joker is a solitaire card game based on three different potiences 
Echelon, Napoleon and Cascade. All three games are very addictive, with 
different variations. It is easy to control by mouse or kebyoord and runs 
under the PE. System requirement: 384k RAM and Toolkit I! 

£14.90 DM44 $25 


NEW! NEW! NEW! NEW! NEW! 


QSpread is completely mouse~ and keyboard- controllable and uses, of 
course, the Menu Extension. Windows may be enlarged up to the maximum 
screen area (i.e. large parts of the table visible on the Extended4-Emulator 
and forthcoming larger screen sizes), the application window may be split in 
up to three different horizontal and vertical sections, giving 9 independent 
controllable areas. 

QSpread is, in the opposit to Abacus, formulae-orientoted, giving the ad 
vantage that the formula of every cell may be modified at any time 
(whereas Abacus sometimes gives the numerical value of o calculation 
only). The formulae-parser has 22 scientific function, and, of course, the 
standard ones like row(), column(), sum, average etc. Every cell may be for- 
matted independently, with many options (justification, decimal point etc.) 
and with preview. The monetary symbol may be longer than one character, 
e.g. DM. Sum- and other often-used macro-functions. 

The size of the sheet is only limited by memory (16000 cells need about 
400kBytes). 

Easiest block handling by mouse. Block entry is very easy and useful, espe 
Gially if you have a numerical pad: you select the block and enter the values 
one ofter the other. They are automatically place in the right order. No cur: 
sor-keys-action necessary! 

Many additional functions, which belong to today's standard-equipment. 
Help, Button-function, use of the Scrop, all standard file operations, coleu 
lation order row or columns etc. 

QSpread introductory price £49 (available in July) 


Our update policy is very generous: updates on most products are free! 
Upgrades (i.e. major improvements on the products) are available at small 
charges. In general you only have to pay if new manuals are required. For 
updates and upgrades, just retum the original disc and enough return 
postage (none, if updates come with an order, £2 (DM 5,90 $3.20) for up 
to 5 discs or £4 (DM 11.80 $6.40) for more. 

Upgrade to QD Version 4 from V3 £10 DM 29,50 $16 
Upgrade to QSUP from QSYS lor Il £19 DM 56,05 $30.40 
Upgrade to QPTR (with new manual) £14 DM 41,30 $22.40 
Upgrade to EasyPTR Il from V1 £13 DM 38,35 $20.80 
Upgrade to QDesign Version Il £13 DM 28,75 $20.80 

New Emulator manual £6 DM 17,70 $9.60 


We are selling the full range of Software87 
products in German and English! 


Please add £4.50 (DM 13.20) for postage and package (Europe) 
or $7 for one item and $4 for every further item (Overseas). No 
extra charge on credit cards! All prices excl. VAT. EBOE 


EDITORIAL 


NEWPORT, RHODE ISLAND, USA - THE EDITORIAL STAFF 


With the approach of summer in the Northern Hemisphere, comes a wealth of NEW 
products for the QL. Some like HERMES, a new co-processor, and QSPREAD, a new 
spreadsheet are major developments (see the articles pertaining to them in this issue). 


Others can be considered to be major upgrades. In this category are two offerings by 
Digital Precision of the UK; the first is "GOLD CONQUEROR "(software PC emulator), 
and the second is "GOLD PERFECTION" (Word Processor). As the prefix GOLD 
would indicate, both have been re-worked to take FULL advantage of Miracle's Gold 
Card. 


On the Public Domain/Shareware front, two major offerings (both in the language 
category) are eFORTH from SPAIN, and Version 3 of the C-68 Compiler (we expect 
to have both of these by the time you read this. Contact Bob at IQLR for details). 


We have finally received the D-I-Y TOOLKIT (see IQLR vol. 2 issue 1) from the UK, 
and can supply the three disks in 3.5" and 5.25" 720K format (sorry, not available on 
microdrive cartridges). The price is $50.00 plus $5.00 S & H in North America and 
$50.00 plus $7.00 S & H to the rest of the world. 


We have a number of new software programs from C.G.H. SERVICES, and one from 
N.A.S.A. the Norwegian All Sinclair Association. All of these programs are commercial 
offerings and have been sent to us for REVIEW. They are: 


"SToQL" this is a Atari ST screen transfer and image processing program for the QL 
written by Rich Mellor and Alan Pemberton. 


“SCRIPTWRITER" is the successor to QL Playwright and is a text processor and 
formatting program written by Andy Pritchard. 


"3D TERRAIN" is a program to generate 3D graphical representations of Abacus 
spreadsheet data written by Ian Thompson and Rich Mellor. 


"ROCK-FALL" is a Boulderdash Clone for the QL written by Andrew Toone. 


"DICEY BUSINESS" from Norway is a Football Manager (SOCCER) program. This 
program requires a knowledge of Soccer and was written by Johnny Vik. 


If you'd be interested in reviewing one of these programs for a future issue of IQLR, we'd 
like to hear from you. For those of you that have always wanted to contribute an article to 
one of the QL newsletters or other publications, this is a painless way to get your feet wet. 

ANNIVERSARY ISSUE : We'd be remiss, if we didn't thank all of you who took the time 


to write or call, congratulating IQLR on our Anniversary Issue. We'll try to live up to your 
accolades. 


NEWS FROM MIRACLE SYSTEMS 
OSBALDWICK, YORK, UNITED KINGDOM 


Miracle is now shipping their re-designed DISK ADAPTER (allows the use of up to 4 disk 


45 


NEWS FROM MIRACLE - cont'd 


drives with Trump or Gold Cards), and they are presently re-designing their QL 
CENTRONICS interface, we've been told that the new version will fit under the hood of a 
Centronics male connector and eliminate the need for the box. 


They are continuing to work on the many new projects mentioned in our last issue. Miracle 
can be reached at: 


MIRACLE SYSTEMS LTD 
25 Broughton Way 
Osbaldwick, York YO13BG 
United Kingdom 

Tel: 0904 423986 


Also reported, they have turned over the rights of the TRUMP CARD (768K of additional 
memory plus disk drive interface), and EXPANDERAM (a 512K memory add-on) to Ron 
Dunnett of QUBBESOFT. Ron is shipping the TRUMP CARD with a new A4 (approx. 
8.5" X 11.5") manual. For more information on TRUMP CARDS or EXPANDERAMS 
contact Ron at: 


QUBBESOFT 

38 Brunwyn Road 

Rayne, Braintree, Essex CM7 5BU 
United Kingdom 

Tel: 0376 347 852 


Ed. Note: Ron Dunnett was recently elected Chairperson of QUANTA, Phil Borman did 
not stand for re-election but remains a Committee Member. 


MATCHER : An ARCHIVE Utility Program 
CORNISH, NEW HAMPSHIRE - U.S.A. - BILL CABLE 


We have all had the experience of receiving 2 or 3 copies of the same catalog each with a 
slightly different version of our address on it. Mail order companies buy address databases 
from many sources and often the same address may be in more than one in a slightly 
different form. This fools the company into mailing multiple catalogs to the same address. 
Even a simple weeding of addresses would save a lot of mailing and printing costs. There 
is no doubt that having a database of specialized information can be an extremely valuable 
commodity. But one also needs to have the programming power to screen the data and 
verify its consistency. 


I recently had such a need with some ARCHIVE address databases. I wanted to do a 
mailing using my own and another one provided to me. First I used some utilities on my 
DBProgs disk. I made the fields match (refield program) and then joined them (join 
program). But at the time, I didn't have a program designed to locate duplicate addresses 
and so did it as best I could manually. I found most of them and got my mailing out. 


I decided to write a program to help me do a better job next time and listed below you see 
the results. I call it MATCHER because its basic function is to find fields that match in any 
ARCHIVE database. It matches on only one field but because it orders on up to 4 fields 
you effectively get matching on up to 4 fields if the matching field is the last in the order 


46 


MATCHER - cont'd 


sequence. Even though I convert everything to lower case for matching to eliminate 
upper/lower case differences, I felt ! needed a way to match even with simple misspellings 
and spacing differences. I added a matching option called ‘fuzzy' which strips out all 
spaces and characters not a-z and eliminates any double characters (so O Rilley and O'Riley 
would both match as oriley). The string manipulations needed to for ‘fuzzy' matching 
slowed the program down considerably but when I ran it I found 2 duplications in my 
address database I hadn't known about before. 


Not all ARCHIVE users have address databases or care about checking for duplicates. So 
lL added a single line display option that creates reports giving the distribution of values in a 
field. Instead of focusing just on matches it shows everything in the database. It is easy to 
make a listing of people in each state (country, city, etc) in an address database. In the 
GAZET database supplied with ARCHIVE you can get a list of countries by continents or 
countries by population, etc. Any ARCHIVE user can display and print information in 
their databases in new and interesting ways. I also added options like printing output and 
suppressing displays so the program can multitask unobtrusively and print to the printer 
while you are doing other computing. 


All ARCHIVE users should have this utility handy. It is easily modified for special 
applications. It takes enormous effort to build databases so we need all the help we can get 
to maintain that investment. I have sacrificed some clarity by arranging the code to 
maximize line length but not exceed 80 characters. This greatly reduces the length of the 
listing. You don't have to know the ARCHIVE language to type it in. And running it is 
the best way to learn how to use it. The program is easy to run but complex in coding. 
The documentation is sparse because of space limitations. Typing it in while consulting the 
ARCHIVE documentation is a very good way to learn ARCHIVE programming. This is a 
new program and I have debugged it as much I can but be watchful and please report any 
bugs to me. Although the database is only accessed by ‘look’ and is not vulnerable, you 
should always have backup copies of your files. This utility is in the public domain and 
will be available from various libraries. An enhanced version of this program plus many 
other useful ARCHIVE utilities are available from me as DBProgs for $19.95 : 


Wood and Wind Computing 
RR3 Box 92 

Cornish, NH 03745 

(603) 675-6081 


For those who are interested in learning more about ARCHIVE, I recommend my articles 
in past and future issues of UPDATE MAGAZINE, P O Box 1095, Peru, IN 46970. 


To enter the program just start ARCHIVE, type: EDIT<ENTER> and enter it procedure by 
procedure. The ARCHIVE editor will automatically indent like the listing. If your 
indentions don't match the listing then you have a mistake. Exit the editor to save (SAVE 
command) or print (LLIST command) the program. To run the program you need to load 
it, if it isn't already (LOAD command), and type: matcher<ENTER>. Those of you who 
typed in my REPLACE program appearing in a previous IQLR issue have already done 
half the work. You only need add those procedures that are new and delete those not in the 
listing (if desired). 


Test it out on the GAZET database by displaying country, continent, and capital and 
ordering on continent, country. Use the single line display and match on continent. You 


47 


MATCHER - cont'd 


will get a list of each continent with its countries in alphabetical order. Try ordering by 
population, country and then currency, country. In an address database to get a list of 
people by state (country, city) first set up display as you wish then match on state (country, 
city) and use single line display. To find duplicates in an address database set up the 
display as desired, order by first name, last name and match on last name and use multiple 
line display. Only matches will be displayed. Try again ordering by street, last name. Try 
again with 'fuzzy' matching (runs slow). The range of the database determines the best 
strategy for finding duplicates. If you want to stop at any time just press <ESC>a few 
times and you can start over. 


Happy Achiving Bill Cable 6/92 
LISTING OF MATCHER 


proc acky;line,m$,v$ 
rem Prints message (m$) at line and asks for <ENTER> to be pressed 
liny;line,v$: print v$;m$;". Press <ENTER> : ";v$;: input i$:liny;line,"" 
endproc 
proc close_all 
rem Closes files until there are no more to close 
while 1: close : endwhile 
endproc 
proc columns 
rem Figures out how many equal columns will fit on a line 
let i=0: let j=0: while i<>len(f1$): let i=instr(fl$(i+1 to len(fI$)),",")+i 
if i: let j=j+1: endif : endwhile : let col=int(79/)) 
endproc 
proc defy;line,m$,d$,v$ 
rem Requests input and returns value in ans$ (m$-message, d$-default value) 
liny;line,v$,"": print v$;m$;" [<ENTER> if "";d$;""] : "3:1 
if ans$="": let ans$=d$: endif : if ans$: let ans$="": 
print at line,len(m$)+1;" : ";rv$;" "jan: Tv$; tab 80;v$; 
endproc 
proc displaying;1 
rem Displays and prints matches in multiple or single line format 
let i$=f1$: let i=instr(i$,","): if 1 and mld: print at 1,0;: endif 
let j=0: let k=cnt+4: if k>21: let k=23: endif 
while i: let fn=int(val(i$(1 to i))): if fn>=0 and fn<numfld(): let j=j+col 
if |: if mld: print fieldn(fn); tab 13;": ";fieldv(fn); tab 79 
else : if j=col: print at k,0;: endif : if fieldt(fn) 
z I$: ae else : let 1$=str(fieldv(fn),3,0): endif 
let I$="_ "+1 
if len(l$)>col: let 1$=1$(1 to col): print 1$; tab j;: endif 
else : if mld: Iprint fieldn(fn); tab 1 ieldv(fn) 
else : Iprint" ";fieldv(fn); tab j;: endif : endif : endif 
if i<len(i$): let i$=i$(i+1 to len G@$)): let i=instr@$,","): else 
let i=0: endif : endwhile : if not sup and not mld: print tab 79;: endif 
endproc 
proc field_show 
rem Shows fields of a database in more than one screen if necessary 
let pg=1: cls 


48 


MATCHER - cont'd 


print "Fields of ";dv$;db$; tab 40;count();" records"; tab 70;"page ";pg 
let i=0: let r=2: let c=1: while i<numfld(): let i$=num(i,3) 
print at r,wid*(c-1);i$;" ";fieldn(i);: let i=i+1: let r=r+1 
if r>rows+1: let c=c+1: let r=2: if c>cols and i<numfld() 
input at 23,1;"Press <ENTER> for more : ";i$: let c=1 
let pg=pg+l: cls : print "Fields of ";dv$;db$; tab 70;"page ";pg 
endif : endif : endwhile 
endproc 
proc fuzy;i$ 
rem Eliminates all characters except a-z and takes out repeated characters 
let ans$="": if i$<>"": let i$=lower(i$): let i=len(i$): let j$="" 
while i: let j=code(i$(i)): if j>=97 and j<=122 and j$<>i$(i) 
let ans$=i$(i)+ans$: let j$=i$(i): endif : let i=i-1: endwhile : endif 
endproc 
proc header;i$ 
rem Clears screen and prints heading 
paper spap: cls : paper hpap: ink hink: print rept(" ",160); 
print at 0,1; tab (80-len(i$))/2;upper(i$); at 3,0;: paper spap: ink sink 
endproc 
proc inp 
rem Reverses screen an 
print rv$;: input" ";ans$; 
endproc 


proc inpy;line,m$,v$ 
rem Prompts for input with message (m$), use v$ to reverse screen 
pie asa v8: print v$;m$+" : ";:inp: print v$; 
endproc 


proc key_choice;i,i$,j$,k$ 
rem Prompts for single key input which must be in j$ before returning 
let ans$="": while not instr(j$,ans$) or len(ans$)<>1 
print at i,0;k$; tab 80; at i, 1;i “srv$;" "jrv$;k$; 
let ans$=lower(getkey()): if not instr(j$,ans$) 
acky;i,"Press the SINGLE KEY corresponding to the desired action" rv$ 
endif : endwhile : print k$;rv$;ans$;" ";rv$; tab 80;k$; 
endproc 
proc liny;line,v$ 
rem Clears at line specified 
if line 
print at line,0;v$; tab 80;v$;: print at line,1;: else : print : endif 
endproc 
proc make_tmp 
rem Set up temporary file to hold output (used to hold program to be merged) 
spoolon dx$+"matcherx_tmp" export 
endproc 
proc matcher 
rem Main program. Gets scratch device and loops on databases 
error close_all: let clw$=chr(27)+"B":rem clears below cursor 
mode 0: let ign=0: let hpap=5: let hink=0: let spap=0: let sink=5: let It$: 
let rv$=chr(0)+chr(26): let rows=20: let cols=4: let wid=80/cols: let kc$="" 
header;"MATCHER : a record matching program for archive databases" 


49 


MATCHER .- cont'd 


print at 2,38;"V1.0 For Public Domain Bill Cable 6/92"; at 4,0; 
print "Display (and print) records matching on a field within any database." 
print " Matching can be exact (case ignored) or ‘fuzzy’ plus there are many" 
print " other options. The program runs fastest using files in RAM.": print 
print "One important use is to find duplicate records in an address database." 
print " Breakdowns by fields such as addresses in each state or whatever can" 
print " be easily made. Clever ordering will yield all sorts of information" 
print " in a database. The database is accessed by ‘look’ and is not altered." 
defy;13,"Device for scratch pad (ram1_,flp1_,mdv1_,etc)","ram1_"," 
if ans$="": mode 1: stop : endif : let dx$=ans$ 
msg; 14,"checking scratch pad","" 
error make_tmp: if errnum(): let i$=str(errnum(),2,0) 
acky;23,"Scratch pad access of device "+dx$+" failed. Err = "+i$,"" 
mode 1: stop : else : spooloff : endif 
while 1 
defy;23,"Source database device (ram1_,flp1_,mdv1_,etc)", 
let dv$=ans$: dir dv$: inpy;23," "Database name [ Will not be seed] ey 
if ans$="": mode 1: stop : endif : let db$=ans$ 
if not instr(db$,"_"): ia db$=db$+"_dbf": endif : look dv$+db$:field_show 
print at 22,0;"Below separated by commas list field numbers for display" 
defy;23,"Field numbers to display","0","": let fl$=ans$+"," 
": let fl$="0"+f1$: endif :columns 


" “ram: 


ield numbers to order on (max of 4)","0","": let dl$=ans$+"," 
let dl$="0"+dl$: endif 
t_ord:match_loop: error close_all 
yorn;23,"Files Closed. Do another","" 
if ans$="n": mode 1: stop : endif 
endwhile 
endproc 
proc match_check 
rem Check for match and displays (and prints) as necessary 
next : if not eof():to_text: if xf1$ xf$ 
if ign: if fieldt(x et ism=0: return : endif 
else : if xf$="0": let ism=0: return : endif : endif : endif 
let ment=ment+1: let ent=cnt+1: if not sup: print at 3,58;ment; 
endif : back : if not sup and mld:displaying;5: endif 
if prt and mld: Iprint : lprint "MATCH ";ment:displaying;0: endif 
let ism=1: next : if not sup:displaying; 14: endif : if prt: Iprint 
displaying;0: endif : if qry: let i$=str(ment,2,0) 
key_choice;23,"Match "+i$+". Press key - C(ontinue) E(xit)","ce","" 
if ans$="e": last : endif : endif 
else : let ism=0: endif : else : let ism=0: endif 
endproc 
proc match_loop 
rem Loops on specified database to set options and match 
while 1:header; "Finding matches in "+dv$+db$ 
print at 2,2;"Order : ";ord$; tab 60;"Match on ";fieldn(xf) 
yorn;5, "Setup Matching using currently defined order","" 
if ans$="n": return : endif : if f£2<>-1 
": let j$="":yorn;6,"Match on field "+fieldn(xf),"": if ans$="n" 


50 


MATCHER - cont'd 


if f4<>-1: let i$ jet j$=" 4) "+fieldn(f4): endif : if f3<>-1 
let i$=i$+"3": let j$=" 3) "+fieldn(£3)+j$: endif : let i$=i$+"2"+"1" 
let j$="Choose Match field 1) "+fieldn(f1)+" 2) "+fieldn(f2)+j$ 
key_choice;6,j$,i$,"": let xf=value("f"+ans$): endif 
print at 2,69;fieldn(xf): endif 
yorn;7," "Use multiple line display (instead of single line) of matches", 
if ans$="y ": let mid=1: else : let mld=0: endif 
worts8\ Pause on each match","" 
if ans$="y": let qry=1: else : let qry=0: endif 
yorn;9," "Print matches to printer","" 
if ansso"y: let prt=1: else : let prt=0: endif 
Suppress displays to screen (if multitasking)", 
: let sup=1: else : let sup=0: endif 
se fuzy matching in "+fieldn(xf),"" 
"y": let fuz=1: else : let fuz=0: endif 
yorn;12,"Ignore empty matches in "+fieldn(xf), 
if ans$="y": let ign=1: else : let ign=0: endif 
if prt: let i$=" (have printer online)": else : let i$="": endif 
yorn;23,"Do matching as specified" +i$,"" 
if ans$="y": first : let ment=0: let i=count(): liny;23,"": if not sup 
print at 3,1;clw$; tab 20;"Of ";i;" have checked ‘and matched 0" 
else : print "Checking ";i;" records for matches (printing suppressed)" 
endif : if prt: lprint "MATCHING RECORDS in "+dv$+db$: let j$="" 
if fuz: let j$="Fuzzy ": endif 
Iprint" Records : ";i; tab 25;"Order : ";ord$ 
Iprint tab 50;j$;"Match on ";fieldn(xf): Iprint 
Iprint : endif : let ism=0: let cnt=0: while not eof() 
if not sup: print at 3,41;recnum()+1;: endif : if not ism 
to_text: let xf1$=xf$: let Icnt=cnt: let cnt: not mld: if not sup 
print at 4,1;clw$;fieldv(xf);" Matches":displaying; 1: endif 
if prt: if recnum()<>0: Iprint tab 72;" ";lent: endif 
Iprint : Iprint fieldv(xf);" Matches":displaying;0: endif 
endif : endif :match_check: endwhile 
acky;23,"Matching complete with "+str(ment,2,0)+" matches","": endif 
endwhile 
endproc 
proc msg;line,m$,v$ 
rem Prints message (m$) at line in normal or reverse (v$) 
liny;line,v$: print v$;"{"+m$+"}";v$; 
endproc 
proc ordering 
msg;23,"ordering flp2_qlmail_dbf","" 
order s7_$;a,s1_$;a 
endproc 
proc set_ord 
rem Takes ordering list and sets up ordering procedure and does it 
msg;23,"setting up ordering procedure","" 
let k=0: let f1=-1: let £2=-1: let f3=-1: let f4=-1 
let i$=dl$: let j$="": let i=O:set_ord2 
if j>=0 and j<numfld(): let f1=j:set_ord3: let xf=fl 
if i<len(i$):set_ord2 


Sl 


MATCHER - cont'd 


if j>=0 and j<numfld(): let f2=j: 
if i<len(i$):set_ord2 
if j>=0 and numfldQ: let f3: 
if i<len(i$):set_ord2 
if j>=0 and numfld(): let f4=j:set_ord3: let xf=f4 
endif : endif : endif : endif : endif : endif : endif 
if j$<>"": let j$=j$(1 to len(j$)-1): endif : let ord$=j$ 
make_tmp: Iprint "proc ordering" 
Iprint "msg;23,'ordering ";dv$;db$;"","" 
Iprint "order ";ord$: Iprint "endproc" 
spooloff : merge dx$+"matcherx_tmp":ordering 
endproc 
proc set_ord2 
rem Strips field numbers out of comma list 
let i$=i$(i+1 to len(i$)): let i=instr($, 
if i>1: let j=val(i$(1 to i-1)); else : let j=-1: 
endproc 
proc set_ord3 
rem Puts field names in ARCHIVE order command format 
let j$=j$+fieldn(val(i$(1 to i-1)))+";a"+"," 
endproc 
proc to_text 
rem Puts match field in xf$ whether text field (fuzzy) or numeric field 


set_ord3: let xf=f2 


:set_ord3: let xf=f3 


let xf$="": if fieldt(xf): if fuz:fuzy;fieldv(xf): let xf$=ans$: else 
let xf$=lower(fieldv(xf)): endif : else : let xf$=str(fieldv(xf),3,0) 
endif 
endproc 


proc yorn;line,m$,v$ 
rem querry message (m$) at ea for yes or no answer 
let ans$="": while ans$: and ans$<>"n"sliny;line,v$ 
print v$;m$+" [ y/n]: : let ans$=lower(ans$): print v$;: endwhile 
endproc 


NEW FROM JOCHEN MERZ SOFTWARE 


DUISBURG, GERMANY 


QSPREAD a spreadsheet for the 1990's is now being shipped. Written by Oliver Fink a 
highly respected guru of the Pointer Environment, QSPREAD can be completely driven by 
the mouse or the keyboard. 


Windows may be enlarged up to the maximum screen area, the application window can be 
split in up to three different horizontal and vertical sections, giving you nine independent 
controllable areas. 


QSPREAD is formulae-orientated, with the advantage that the formula of every cell may be 
modified at any time. The formulae-parser has 22 scientific functions, plus the standard 
ones like Row, Column, Sum, Average, etc., etc. Every cell may be formatted 
independently with numerous options such as; Justification, Decimal Point, etc. 


52 


NEW FROM MERZ - cont'd 


The monetary symbol can be longer than one character, e.g. DM, Sum, etc., plus other 
often-used macro-functions. Block entry is easy and useful, especially if you have a 
numerical keypad. You select the block and enter the values one after the other, they are 
automatically placed in the right order. NO cursor key action is necessary. 


The price of QSPREAD is 49 Pounds Sterling. ALL major credit cards accepted. To place 
an order contact: 


JOCHEN MERZ SOFTWARE 
Im stillen Winkel 12 

W-4100 Duisburg 11 
Germany 
Tel: 0203 501 274 


Ed. Note: Jochen Merz's telephone can receive FAX as well as voice communications. 


SUPER DISK INDEX Dilwyn Jones Computing 
SAN DIEGO, CALIFORNIA, USA - ALAN HODGE 


Most cataloguing methods applied to collections of items, be they books or chapters in a 
book, involve relatively complex indexing techniques such as alternating between numerals 
(Arabic or Roman) and alphabetical characters. On the other hand, it is generally simpler, 
and often preferable, to use a straightforward numerical order when dealing with 
collections of closely similar objects such as phonograph records. Thus it is that, what 
would seem at first to be a major shortcoming of this highly useful program, is actually a 
blessing in disguise. 


The inability to label a disk with anything other than a number from 1 to 999 will definitely 
motivate less than compulsive QL users to organize their usual haphazard assortment of 
disks and microdrive cartridges into more rational collections or even sensible groups. 


Each disk within a group can then be assigned a suitable number in an appropriately titled 
Index of directories. I suspect that most users will require several such Indexes in order to 
adequately cover the various categories of media in their collections. I know I had to, and 
it has all turned out for the best. I can now find in a remarkably short time any small 
obscure file hiding anywhere in my collection, and all thanks to the application of the 
excellent search facilities provided by Super Disk Index to my now quite well organized 
media. 


In my own case, because I have two hybrid dual disk drives, one a 3" / 3-1/2" 
combination, the other a 5-1/4" / 3-1/2" unit, I have so far found it best to make a total of 
four indexes, viz., one each for the 5-1/4", 3-1/2" and 3" disks, as well as one for my 
microdrive cartridges. 


Fortunately, I had planned that the 3-1/2" drive would in each dual drive unit be designated 
flp2_, the usual default data disk. This allows use of the same data disks in both disk drive 
systems, and also enables me in most cases to transfer operational programs from a 5-1/4" 
disk via a 3-1/2" to the 3" flp1_ disk. This is most easily accomplished using Taskmaster 
in both systems. 


53 


SUPER DISK INDEX - cont'd 


SUPER DISK INDEX runs very well, and allows the operator to pursue his own aims 
by means of well designed menus. There are excellent sorting facilities, e.g, even a fairly 
large index of 1200 files can be alphabetized in less than 13 seconds (with a Gold Card). A 
most useful feature is that on reverting to disk number order after alphabetizing, it will be 
found that the individual disk directories are now alphabetical. 


The ability of the program to select an appropriate number of columns both on the screen 
and when printing to paper is very impressive, and saves a lot of paper to boot. In some 
cases, such as when printing out a listing of files containing a designated "search word", it 
is wise to allow the program to print to the screen first by refusing the printer prompt, then 
deciding whether to commit the list to paper. This is easily done by going back and 
repeating the search. The printing options are also excellent. It is a snap to print out 
individual disk directories in two or more columns depending on the number of files and 
length of the file names. The number of columns is ‘intelligently’ selected by the program, 
usually with gratifying results. It is equally simple to obtain a nice printout of files selected 
by the two search techniques available to the user. However, note the caveat in the 
previous paragraph. 


The program lacks one feature which I personally miss. It fails to read and show the name 
impressed on the disk or cartridge during the formatting process. From my point of view, 
this is unfortunate because it is right in this name or title that I store relevant information 
such as the type of program (or its original name), whether it is a backup copy, and so on. 
This can, of course, be read by any directory routine and would normally be written on the 
disk label anyway. Still, it would be a nice addition to any update. 


A simple program which I have used for years (probably originating from the New 
England QL group) enables me to print out the name, remaining memory and directory of a 
disk or microdrive cartridge for storage with these media, and is as follows: 


100 OPEN #3, serl: DIR #3, flp1_: STOP 
200 OPEN #3, serl: DIR #3, flp2_: STOP 
300 OPEN #3, serl: DIR #3, mdv1_: STOP 
400 OPEN #3, serl: DIR #3, mdv2_: STOP 


I usually load it by going to the Superbasic option while running Taskmaster, loading it 
from one of the disks, then LISTing. The routine is activated by a simple GO TO 
command and is self-terminating. I have kept a copy of it under the name DIRprnt on 
nearly all my program and data disks so that it would be readily available for loading and 
implementation. Of course, this should not be as necessary from now on since I shall now 
be able to instantly find a disk or cartridge containing it on my printout made using the 
search facility, always assuming I can find the listing. Better yet, I can always load one of 
my indexes and do a simple visual search. 


Writing as a humble, chastened, but now relatively well organized user of QL magnetic 
media, it gives me great pleasure to heartily recommend this excellent software to all my 
esteemed QL colleagues. 


Ed Note: See the Dilwyn Jones Computing Ad on the back cover for price and ordering 
information. 


54 


CGP-220 COLOR PRINTER CONVERTER 


JUPITER, FLORIDA, USA - TAYLOR S. PENROSE 


I wrote the program that follows to overcome the difficulty of generating QL characters on 
my CGP-220 (an older Radio Shack/Tandy printer, which I believe to be one of the first 
color ink-jet printers). With a little tinkering you can get this program to work with any dot 
matrix printer. In fact, if you've got the time or inclination, you might make the following 
changes: 


1) Make it so that the QL character code accesses an array of printer character 
codes. 


2) Make itso that your printer will generate the graphics codes to emulate the QL 
codes your printer will not support directly. 


3) If you go for change #1 you'll have to be devious with change #2, as the codes 
to generate graphics are normally a sequence of codes. 


4) Finally, figure out how it can be speeded up. 


Good Luck !! I intend to tackle items 1 thru 3, but on item #4 your on your own. Take 
care for now. If you would like to share input with this project, I can be reached thru 
IQLR. 


100 DEFine PROCedure cnvrt(text$) 
110 FOR L=1 TO LEN(text$) :t=CODE(text$(L)) :IF t<127 :NEXT L 


(ED.NOTE: we are listing the rest of this program in columns and from left to right to 
Save space and to aid in inputing the code.) 


140 =129 :t=206 
170 =132 
200 =135 
230 =138 


120 SELect ON t 
150 =130 :t=211 
180 =133 :t=207 
210 =136 :t=162 


240 =139: 260 =141 
270 =142 :t=192 290 =144 
300 =145 :t=193 

330 =148 : 350 =150 
360 =151: 380 =153 
390 =154 :t=188 410 =156 
420 =157 :t=180 440 =159 
450 =160 :t=177 470 =162 :t=210 
480 =163 :t=215 500 =165: 
510 =166 :t=212 530 =168: 
540 =169 :t=214 560 =171: 
570 =172: 590 =174: 
600 =175: 620 =177 : 
630 =178: 650 =180 : 
660 =181: 680 =183: 
690 =184: 710 =186: 
720 =187: 740 =189: 
750 =190: 


800 END SELect :text$(L)=CHR$(t) END FOR L 


55 


A Quantum Leap in QL Wordprocessing 


text57 plus4 


+] USER FRIENDLY TO THE EXTREME 


You will hardly ever need our new well-written manual. An 
automatic setup and Installation program allows you to select a 
suitable driver for your printer and copies all the necessary files to 
your disk. Run plus4 and a menu allows you to load a file of start a 
new one. An extra line of Instructions and another line containing 
the current setting are displayed. Press <F1> and a window offers 
more help related to the menu options (context-sensitive). If you 
select Load you do not have to remember the file name; Just press 
<UP> of <DOWN> for a list. Use the same keys to select the file that 
you wish and press <ENTER>. 


This user-frlendly command system goveins the program In every 
‘area. Extensive context-sensttive help is only an <Fl> away. No 
need to type In filenames. etc. if the program can offer a list Ino 
selector box. Commands and key-presses are highly compatible 
with those used in Quill and function keys perform the same 
operations. 


+2 THE MOST POWERFUL QL WP 


Plus4 provides all the navigation and editing facilities you would 
expect and a lot more. Extensive editing facilities include cursor 
move (by character. word, line, paragraph, screen. page) erase 
(by character. word, line) block operations (copy. move. delete) 
goto (ine, page. top, bottom, section. block). Insert and overwrite 
modes. Very fast search and replace backwards and forwards. 
case dependent and independent. Special characters include 
hard-space, hyphenation, hard and soft hyphens. In operation 
plus4 reformats the text as you edit and preserves the format of 
each paragraph no matter how many different formats you use in 
your text. Everything is automatic. 


‘sa Quill user you would naturally expect your wordprocessor to remember 
different tab and margin settings for a document. You would expect to freely 
add to old texts without having to bother about those settings over and over 
again. Not surprisingly, text87 is the only other QL program that supports this 
it, user friendly feauure of Quill 

File Operations include load, save, merge. block save (in plain 
ASCII or as fully formatted document) import (Quill files retaining 
bold, underlined, etc. or any other file, Including those exported 
from Archive and Abacus or from other programs). The 
combination of all these powerful commands enables you to 
move text from one document to another effortiessly. 


Integrated Spell Checker displays selector boxes for browsing the 
dictionary and automatic replacement of the selected word. This 
ls automatically capitalised if the original began with a capital. 
Choose between large (over 210,000 words) and small English 
dictionaries or French or German (all supplied with the program). 
You can add any word in your text to the dictionary by just pressing 
akey. Your word lists can be saved and loaded at will or added to 
the dictionary on a permanent basis. (You can actually edit the 
dictionaries to your requirements). 


Multl-Window Multl-Document plus4 goes far beyond multi- 
tasking. With one copy of plus4 up to 8 document windows can be 
open simultaneously. Up to 8 files can be on screen and more than 
one window can be open over a document so that you can edit 
the text while looking at a different part of it or at a different 
document. Resize. Zoom. Tile and Stack commands allow you to 
arrange the windows manually or automatically and switch 
instantly between them. 


special offer expires at the end of August 1992. 


1 If you have paid over £59 for any other QL wordprocessor you can upgrade to text87plus4 for 
‘only £59. The manual from the other software is required as proof of purcharse (It will be punched and retumed to you) . This 


For immediate dispatch, send orders (including credit card) to: 
Software87, 33 Savernake Road, London NW3 2JU_ or to our US distributors EMSoft, Boston, MA 


Page-Preview and Pagination Page and column ends are 
constantly displayed on the screen. plus4 takes Into account all 
the changes of line spacing (you can fine tune the line spacing In 
different parts of the text between 0 and more than 1 Inch). The 
Page preview command shows your text In full A4 (and other size) 
pages. Each word Is represented by a rectangle. giving a realistic 
picture of the printed page before you commit the text to paper 
This command alone will save you a lot of time and effort. 


+3 > UNRIVALLED PRINT QUALITY 


In text and character formatting, text87plus4 Is miles ahead of the 
so-called competition. Simply. no other QL program can produce 
similar results. Used with the appropriate printer-driver, text87plus4 
can utilise the different founts and character sizes bullt into modern 
printers. tt fully supports proportional spacing (such as used for this 
text) and justifies correctly. You can use any combination of small 
and large founts on the same line and be assured of a perfect 
printed result. You can set up multiple paragraph formats with 
different margins and line-spacing for each. You can use any 
combination of ordinary tabs with right. centre and decimal tabs in 
each line of text. You can also format the page the way you want, 
using several columns plus headers and footers. For desktop 
publishing, you can use several different page layouts in the same 
document. 


WYSIWYG (what you sec is what you get~pronounced wizzy-wig) 
Several years ago this word referred to the absence of printer control codes 
from the screen. It is now used to distinguish word-processors which display| 
different amounts of line-spacing and different character sizes and styles 
‘(@g. double width, proportional). text87plus4 is the only QL wordprocessor 
that can be called WYSIWYG by current standards. 


+4 FASTEST QL WORDPROCESSOR 


text87plus4 Is much faster than the so-called competition. Tested 
‘on a QL with memory expansion, text87plus4 reformatted a 
document of 385 lines after changing Its right margin in § seconds, 
the other wordprocessor took 280 seconds! (this Is not a printing 
error). Plus4 completed an automatic search/replace (58 
instances) in the same document in § seconds, the other program 
took 120 seconds! Even a single paragraph reformat took 6 fimes 
longer on the other program. Scrolling the screen line-by-line was 
65% faster with plus4. The speed Increase was even more (over 
110%) when tested on an Atari. The test document was an ordinary 
text included on the plus4 disk. Plus4 was set up with a screen fount 
similar to the other program’s. 


plus4 is supplied with over 30 ready-made printer drivers supporting Opin and 

daisywheel printers. Extra drivers for 24pin, Bubblejet, Deskjet and laser 

Printers suppor the resident lener-quality fount built ato the printer. All our 
defined translates for QL's extended character set. 


More information on printer drivers Is available on request 


plus4 Is fully compatible with all QL roms. Gold Card, ST QL, etc. 
Requires disk drive and 256K memory. 


Prices (inclusive of Air Mail to overseas) 


text87plus4 £79.00 
upgrade to plus4 from v. 3.00 (limited period) £39.00 
2488 chivers for 24pin and Bubbiejet printers £19.00 
typeset90-deskjet drivers for all HP Deskjets £19.00 
typeset90-Epson GQ3500/S000, EPL4100 /7 100 lasers £39.00 
fountext88 + founted8? £39.00 


Graphic driver for 9 & 24-pin printers with over 30 founts 


HELPFUL HINT #1 - UN-NUMBERED BOOT 
PROGRAMS 


BANGOR, GWYNEDD, GREAT BRITON - DILWYN JONES 


Following up a hint in a previous issue, boot programs do not have to be manually typed in 
to add line numbers. You can, of course, load them into an editor and manually add line 
numbers, but it is much easier to let the QL do it automatically. 


This method has been tested on version JM and JS QL's and with the Gold Card, but not 
on JSU, Minerva, or ST-QL's. 


Type NEW to clear out the old BASIC program. Type AUTO as if starting to enter a new 
program. The line number 100 will appear on the first line. Delete this number using the 
standard CTRL LEFT or DEL keys (depending on the type of keyboard). You can now 
enter direct commands. 


Type in MERGE "flp1_BOOT" (or other applicable device). The QL will load the BOOT 
program adding line numbers it as it goes. When it has finished loading, press BREAK 
(CTRL space) to get out of the numbering and then save the numbered BOOT program! 


My thanks to Norman Dunbar (author of WINBACK) for that little hint. 


NEW !!! HERMES CO-PROCESSOR from QVIEW 
LONDON, UNITED KINGDOM 


The QL's second processor, the Intelligent Peripheral Controller (IPC 8049), handles 
sound and the serial port, as well as keyboard input. The code in the present 8049 suffers 
from a number of problems: 


SERIAL INPUT - Suffers from bad handshaking which can result in a loss of characters, 
and worst yet a ‘serial overrun’ which can only be cured by a power-down. 


KEYBOARD HANDLING - Key rollover doesn't work, and some keyboards, especially 
the SCHON and KEYBOARD PRODUCTS, suffer from keybounce. There is a 
‘debounce' 8749 available, but this destroys SER2 input. 


BAUD RATES - Independent rates are not possible. Input at 9600 requires 2 stop bits, 
and 19200 baud is impossible. 


SOUND - Fuzzy and RANDOM on sound shift the underlying pitch. Sound duration is 
dependent on pitch. 


ENTER HERMES !!! The new HERMES co-processor corrects all of the above problems. 
There's NO keyboard bounce, 2 key ROLLOVER even with shift, and fully reliable 
SERIAL INPUT up to 19200 baud with 1 stop bit. (This assumes the IC25 output buffer is 
fully functional, and handshaking is enabled at both ends and connected). 


Different baud rates for SER1 and SER2 input lines, and separate from output. This can be 


used to drive a serial mouse AND a printer from SER] at the same time. Open/closed 
status of serial ports can be read. 


s7 


HERMES CO-PROCESSOR - cont'd 


There is code to handle 3 spare I/O lines, one of which is used by the QVIEW capsled kit. 
Three more input lines can be read. Key click can be toggled on and off, Reset/INT7 can 
be invoked much more safely, and there is a function to return IPC version number. 


The cost of the new HERMES Co-Processor is 25 Pounds Sterling, both VISA and 
MASTERCARD are welcomed. You can purchase HERMES from: 


TF SERVICES 

12 Bouverie Place 
London W2 1RB 
United Kingdom 
Tel: 071 724 9053 


Fitting HERMES is a simple job, remove the top of the QL "carefully' (removing the 8 
screws), replace the large IC marked '8049 next to microdrive 1. CAREFULLY re- 
assemble your QL. A small extensions file needs to be loaded with RESPR. HERMES is 
shipped with a manual and Software, please specify disk or microdrive cartridge. 


HELPFUL HINT #2 - USING PRINTER CONTROL 


CODES IN QUILL 
BANGOR, GWYNEDD, GREAT BRITON - DILWYN JONES 


Provided your printer is set to ignore the MSB (Most Significant Byte) of byte values sent 
to it, (many are shipped with this as a default setting and normally this can be changed by a 
DIP switch inside the printer or from software), it is possible to send control codes by 
using CHR$(155) from the keyboard while in Quill. 


On British QL's pressing CTRL and semi-colon produces an u with a circumflex accent 
on top of it, which is CHR$(155).. CHR$(155) is CHR$(128+27), in other words if bit 7 
is ignored, the 128 is not read and you are left with CHR$(27), which is the character code 
for ESC, CHR$(155) may be in a different place on the keyboard in different countries so 
you have to find it first! This opens up all sorts of possibilities. By following this 
character with selected characters many printer codes can be generated. For example, 
following it with a "4" switches italics on, while "5" turns italics off. Following it with 
“M" switches to Elite pitch printing, while "P" gives Pica pitch printing. "w1" gives 
double height characters (""w0" cancels it) if the printer concerned supports double height 
characters and "W1" (Ed Note: Printer control codes are upper and lower case sensitive) 
gives double width, while "WO" turns it off again. No doubt readers will find other ways 
of making use of this. It enables us to stretch that little bit extra from good old Quill WP. 


A PORTABLE FORTH MODEL, eFORTH 
FUENGIROLA, MALAGA, SPAIN - SALVADOR MERINO 


Salvador Merino has gratuitously provided this version of FORTH to readers of IQLR. In 
order for you to determine if this package is something you might be interested in, we have 
printed below, the starting instructions and sample entries. Instructions for obtaining a 
copy of eFORTH are provided at the end of the article. 


58 


eFORTH - cont'd 

eFORTH is the name of a FORTH model designed to be portable between a large number 
of the newer and more powerful processors existing now, or becoming available in the near 
future. FORTH for the QL is a version 32 bits absolute address and 32 bits stack. 
STARTING eFORTH 


To START eFORTH: Put eFORTH disk into FLP1. Then POWER QL ON and press the 
Fl key. You will see the FORTH sign-on message: 


eFORTH v1.03. 


Push the <ENTER> key a number of times and you will see a series of 'ok' appear on the 
left margin of your screen. eFORTH is now ready to accept commands. 


To exercise EFORTH and to learn some of the more useful words in this system, try the 
following words: 


WORDS <ENTER> 
Names of about 200 words will appear on the screen (remember any key to continue and 
ENTER key to abort). These are the words that e€FORTH has in its dictionary. Word 
names are not wrapped around the end of line. You will see names split between two lines. 
eFORTH is a very lean system. Cosmetics were not a major concern in its present design. 
eFORTH is case sensitive. Most words are in the upper case. Many system words not 
intended for applications programming have lower case characters to make them difficult to 
enter on the terminal. If you are not sure of the spelling of a word, consult the system 
using WORDS command. 
Type in a sequence of numbers, like: 

1234567 <ENTER> 


eFORTH will echo an ‘ok’ at the end of the line. These numbers are pushed on the data 
stack. To verify that they are indeed pushed on the stack, type: 


.S <ENTER> 

You will see the stack picture on the next line: 
1234567 <sp ok 

with these numbers on the stack, type some arithmetic commands like: 
+ * .S <ENTER> 

You will see: 


123465 ok 


59 


eFORTH - cont'd 

eFORTH is the name of a FORTH model designed to be portable between a large number 
of the newer and more powerful processors existing now, or becoming available in the near 
future. eFORTH for the QL is a version 32 bits absolute address and 32 bits stack. 
STARTING eFORTH 


To START eFORTH: Put eFORTH disk into FLP1. Then POWER QL ON and press the 
Fl key. You will see the FORTH sign-on message: 


eFORTH v1.03. 


Push the <ENTER> key a number of times and you will see a series of 'ok' appear on the 
left margin of your screen. eFORTH is now ready to accept commands. 


To exercise EFORTH and to learn some of the more useful words in this system, try the 
following words: 


WORDS <ENTER> 
Names of about 200 words will appear on the screen (remember any key to continue and 
ENTER key to abort). These are the words that eFORTH has in its dictionary. Word 
names are not wrapped around the end of line. You will see names split between two lines. 
eFORTH is a very lean system. Cosmetics were not a major concern in its present design. 
eFORTH is case sensitive. Most words are in the upper case. Many system words not 
intended for applications programming have lower case characters to make them difficult to 
enter on the terminal. If you are not sure of the spelling of a word, consult the system 
using WORDS command. 
Type in a sequence of numbers, like: 

1234567 <ENTER> 


eFORTH will echo an ‘ok’ at the end of the line. These numbers are pushed on the data 
stack. To verify that they are indeed pushed on the stack, type: 


.S <ENTER> 

You will see the stack picture on the next line: 
1234567 <sp ok 

with these numbers on the stack, type some arithmetic commands like: 
+ * .§ <ENTER> 

You will see: 


123465 ok 


59 


MIRACLE 
SYSTEMS 


MASTERCARD Ee 
ars 


14 day money back guarantee 


GOLD CARD 


If you're still not a Who Is the GOLD CARD for? Well, if you ask 
member of the user anybody who’s already got one they'll tell 
club, QUANTA, then you everyone should have one. The 

there's no time like principal benefit Is the speed. 


the present to Programs are typically accelerated 

pall Bill Newell, by a factor of four. The subjective 

podoatteh effect of this Is to give the QLa 
9 completely new feel. 


Manor Road, 
Benfleet, Essex, There's also a battery-backed 


SS7 4JD, clock which keeps track of the 
tel. (0268) 754407 time while the QL is switched off 
and join. so you don’t need to enter the time 


and date when you switch on the QL. 
A standard disk drive connector 
lets you couple the GOLD 
CARD to the old style 720K 
drive or the new dual 3.2M 
drive which, for many users, 
is an excellent alternative to 


a hard disk. 
We've also put 2M of RAM on 
board so you can run more tasks Gold Card Owners 
The latest ROM 


simultaneously and manipulate larger blocks of 


data like Quill documents. version is 2.28. if 


you have an earlier 


Best of all though, why not come to one of the ‘ 

" gies ersion please 
venues listed opposite and see the Gold Card We ects rae {ree 
in action. If you want to see what difference the upgrade. 


Gold Card will make to you then please bring 
along the software you are familiar with. We 
look forward to seeing you. 


MIRACLE SYSTEMS Ltd, 25 Broughton Way, Osbaldwick, 
York, YO1 3BG, U.K. Tel: (0904) 423986 


eFORTH - cont'd 
Where 65 is the result of (6+7)*5. The following commands are interesting:to try: 
+-*/MOD AND OR XOR INVERT 


Numbers and words must be separated by spaces. If you run two words together without 
separating spaces, like: 


123+456 <ENTER> 
eFORTH will echo: 
123+456 ? 


It complains that it does not understand 123+456, which is neither a command nor a 
number. Define and the new command: 


: TEST FOR R@ . NEXT ; <ENTER> 

Type WORDS to see that TEST is added to the dictionary. To exercise TEST, type: 
10 TEST <ENTER> 

and you will see: 
1098765432100k 

displayed after the 10 TEST command. 


DUMP is a useful command to examine a range of memory. Try the following commands 
(Remember any key to continue and ENTER key to abort): 


NP @ 100 DUMP 
NP contains a pointer to the top of the name dictionary. NP @ gets the pointer and 100 
DUMP displays the contents of 100 bytes starting from the top of the name dictionary. 
You will see some of the names in the dictionary displayed in the ASCII dump field. 
SEE allows you to decompile a word compiled in the dictionary. Type: 

SEE DUMP <ENTER> 
and you will see the tokens which make up the command DUMP displayed on the screen. 
Remember any key to continue and ENTER key to stop. SEE is pretty dumb. It does not 
stop at the end of the token list of DUMP. 
There are many excellent book introducing FORTH to first time users. This is certainly not 


a proper place to present exhaustive tutorials. The file eFORTH_glossary_txt contains the 
all commands available in the FORTH system. 


62 


eFORTH - cont'd 
eFORTH QDOS COMMANDS 


FORTH.- No in dictionary 
doVOC.- No in dictionary 


LOAD_FILE.- Load source code from a text file storage (LOAD_FILE 
flp1_source_fth). 


QPACKS.- Same as PACK$, but moves and converts the string at byte address 
with word count to a packed string at address $ (The Standard QDOS). 


TRAP! (d2/a3 di dO --- d2 di dO) 

TRAP2 (d0 d3 a0 -- a0 dO) 

TRAP3 (dO d2 a0 al -- al dl dO) 

TRAP3* (dO d2 a0 al di -- al dl dO) 

VEC_UT (al a0 dl Vector_num -- d3 dO) 

#IN —_(-- addr) Variable which holds the current input ID. 

#OUT  (-- addr) Variable which holds the current out ID. 

#DEFAULT ( -- addr) Variable which holds original console ID. 
Free space is only 16 Kbytes. If you wish more, for GOLD CARD type: 


278528 CP! <ENTER> 
2097152 NP! <ENTER> 


Now you have a free space of 1818624 Bytes. 


eFORTH for QL eFORTH for PC 
Salvador Merino Dr. C. H. Ting 
“CTRA CADIZ, CERAMICAS MARY 156 14th Avenue 
29640 TORREBLANCA DEL SOL San Mateo, CA 94402 
FUENGIROLA (MALAGA) (415) 571-7639 
SPAIN 


Ed. Notes: eFORTH for the QL has been placed in the public domain, and can be obtained 
from IQLR by sending a FORMATTED DISK and $2.00 US funds to cover postage. 


maus.comp.ql 
BONN, GERMANY - FRANZ HERRMANN 


This article is intended for QL users who have access to Usenet or any other means to 
receive such conferences or forums. Intl.QI is an international area to discuss anything 
related with the QL. It originates from the QBOXnet, an independent private network of 
bulletin boards (Fido) which run on QLs or compatible machines. 


63 


maus.comp.ql - cont'd 


Intl.QI is spread widely throughout Europe, as you can see from the following list. Most 
of these boards run 24h and offer more QL or Sinclair interest groups (eg. C, Minerva, 
Quanta, Spectrum): 


Fourth dimension +44-202600305 (England) 
Grizzilius Maximus +44-772828975 (England) 


TF services +44-717062379 (England) 
Blanford-BBS +44-258455117 (England) 
Aspects +44-617920260 (England) 
QUANTA NE BBS +44-914775472 (England) 
Jamten TCL +46-64133330 (Sweden) 
Andromeda BBS +39-6-3251114 (Italy) 

Lau's Place +44-253780021 (England) 
SYNCNET +31-35-237178 (Holland) 
QLAT +31-30-962265 (Holland) 
KU-EL-TEL +31-1650-37105 (Holland) 


Additionally, there is a gateway to the German MAUS network. This is an ideal starting 
place. Hans Héscher (Hans_Hoelscher @ hb.maus.de) recently convinced the MAUS 
officials to send Intl.Q] to a UUCP site which forwards it to the University of Oldenburg. 
This university is a true Internet system and willing to send the Intl.Q] as maus.comp.ql 
to any other Internet system on this planet. So far I know this is free. 


It is necessary to write a message to Jéerg Lehners 
Joerg.Lehners @ arbi.informatik.uni-Oldenburg.de 


who is the responsible postmaster at the university. He knows everything about possible 
feeds to transport maus.comp.q| to other networks. Please, support this project! 


A note for those who do not fully understand this article. It refers to communication via 
electronic mail. There is rapidly growing activity around the QL in this area. The long 
codes with an '@' inside are Internet addresses, mine is 


"Franz_Herrmann @ bn.maus.de". 


Internet is an organization with links to nearly all existing networks. (Ed Note: See Tim 
Swenson's associated article in the last issue of IQLR). 


READING MSDOS DISKS ON THE QL - 


PART II: Copying MSDOS Files 
OAK RIDGE, TENNESSEE, USA - Mel LaVerne 


Part I contained a brief description of the MSDOS disk organization. Table 1, below, 
expands on that description to include placement of clusters. The tabular form should 
allow visualization of interrelations among the disk parameters superior to any verbal 
description. For instance, the expressions in Procedure trsise should be fairly readily 
derivable from the Table. I have terminated the table with Track 2 because the patterns 
should be apparent by that time. “a and "b" indicate the first and second sectors of a pair, 


64 


COPYING MSDOS FILES - cont'd 


whether in a File Allocation Table (FAT) or a Cluster (Cl). 


Track 0 Track 1 Track 2 
Sectors Side 0 Side 1 Side 0 Side 1 Side 0 Side 1 
0 BootRec Dir 5 Cl Sa Cl 9b Cl 14a Cl 18b 
1 FAT la Dir 6 Cl Sb Cl 10a Cl 14b Cl 19a 
2 FAT Ib Dir 7 Cl 6a Cl 10b Cl 15a Cl 19b 
3 FAT 2a Cl 2a Cl 6b Cl lla Cl 15b Cl 20a 
4 FAT 2b Cl 2b Cl 7a Cl 11b Cl 16a Cl 20b 
5 Dir 1 Cl 3a Cl 7b Cl 12a Cl 16b Cl 21a 
6 Dir 2 Cl 3b Cl 8a Cl 12b Cl 17a Cl 21b 
7 Dir 3 Cl 4a Cl 8b Cl 13a Cl 17b Cl 22a 
8 Dir 4 Cl 4b Cl 9a Cl 13b Cl 18a Cl 22b 


Table 1. MSDOS Disk Organization. 


The following program copies a file directly from an MSDOS disk and places it, 
temporarily, in a ram disk. Carriage returns are deleted from the line terminators so that 
they conform to QL usage. The MSDOS program is otherwise unchanged. If desired, the 
file may be copied to a floppy disk. Note that at this point the file has not been subjected to 
syntax checking. 


Be warned that a BAS extension on an MSDOS program does not guarantee readability, 
i.e., that the copy will look like Basic. You may have encountered a compiled program. I 
can only say, try it; if the result looks like garbage, try another. 


BAT, EXE, COM extensions offer little hope of anything useable. 


TXT, DOC extensions indicate probable text files. I say probable because I have, for 
instance, encountered DOC files consisting entirely of Basic PRINT statements; sort of 
self-documenting files. 


The program, complete with explanatory comments, follows: 


1000 REMark File = MS_QL_ Copy MSDOS files toQL M.E.LaVerne 6 June 1992 
1010: 


As before, a bit of tidying up; in particular, we make sure that the ram disk is empty. 
Dimensions of the d$ array were derived as follows. We read 512 bytes at a time, so that 
the length of d$ cannot exceed 512. The shortest line consists of a single digit, a space, a 
colon, and a line feed, four bytes; there are 9 such lines. Line numbers from 10 to 99 yield 
90, five byte lines; and, finally, line numbers 100 to 103 give four more lines of six bytes 
each. The byte count is then, 9*4 + 90*5 + 4*6 = 36 + 450 + 24 = 510 bytes. Hence, we 
cannot have more than 103 lines in a sector. These are not very realistic lines, to be sure, 
but I simply wanted an upper limit. 


1020 CLEAR: Close45: FORMAT ram1_: CLS: CLS #0: DIM d$(103,512) 
1030 INPUT 'Name of ram1_ file ? '; name$: namel$ = 'ram1_' & name$ 


65 


COPYING MSDOS FILES - cont'd 
Open an input file for direct access; open a ram disk for output 
1040 OPEN_IN #4; 'flp2_*d2d': OPEN_NEW #5; namel$ 


The initial cluster is obtained by reference to the root directory of Part I; generally, the 
clusters will be contiguous, so that the final cluster will be one less than the first cluster of 
the next program in the directory. 


1050 INPUT ‘Initial cluster ? '; cli, 'Final cluster ? '; clf\\ 
1060 PRINT #0;'Cluster:'; TO 14; 'Track:'; TO 25; 'Side:'; TO 34; 'Sector:' 
1070 : 


Now look at all the clusters. 
1080 FOR cluster = cli TO clf 


Procedure trsise finds the track, side, and sector corresponding to the cluster (this is the 
same procedure that was used in Part I). 


1090 trsise cluster, track, side, sector 
1100 AT #0; 0,9: PRINT #0; cluster; 
1110 AT #0; 0,21: PRINT #0; track; 
1120 AT #0;0,31: PRINT #; side; 


cloff is the offset from the initial sector in a cluster; clusters are taken to have two sectors. 
Hence, cloff is 0 or 1. 


1130 FOR cloff=0, 1 
1140 sec = (sector + cloff) MOD 9 
1150 at #0; 0,42: print #0; sec; 


Here we test to see whether we swap sides. 


1160 IF sector = 8 AND sec = 0 THEN 
1170 _ side = NOT side : AT #0;0,31: PRINT #0; side; 
1180 ENDIF 


Now calculate position on the disk and read a sector. 


1190 GET #4\1 + sec + 256*side + 131072*track, a$ 
1200 k=1: flag =0:b$=" (Ed: two apostrophes) 
1210 FORi=1TO512 

1220 c$=a$(i): c = CODE(c$) 


Test the character c$: discard a CR; or, add a LF, save d$, advance the string count, and set 
a flag indicating completion of at least one line. Otherwise, add a character to the string b$ 
(non-printing characters are indicated by '.'). 


COPYING MSDOS FILES - cont'd 
1230 SELectONc 


1240 = 13: REMark Discard CR character 

1250 = 10: b$ = b$ & c$: d$(k) = b$: b$ =": k =k + 1: flag = 1 (apostrophes) 
1260 = 32 TO 126 : b$ = b$ & c$ 

1270 = REMAINDER : b$ = b$ &'." 


1280 END SELect 
1290 END FORi 


If the flag is set, print the d$ array ; otherwise, print b$. 


1300 IF flag THEN 

1310 FORj=1TOk-1: PRINT d$(j);: PRINT #5; d$(j); 
1320 ELSE 

1330 PRINT b$;: PRINT #5; b$;: b$ =" (apostrophes) 
1340 END IF 


It is possible that the flag was set and that, subsequently, b$ received some input. So, test 
for a non-empty b$ here. 


1350 IF b$ <>" THEN PRINT b$;: PRINT #5; b$;: b$ =" (apostrophes) 
1360 BEEP 10000,5 

1370 END FOR cloff 

1380 END FOR cluster 

1390: 

1400 Close45: PRINT \\Finished. Press any key to continue.": PAUSE 
1410: 


Optional copy of ram disk to floppy disk. 


1420 REPeat to_disk 

1430 PRINT \Copy '; name1$; ' to disk ? (Y/N) ';: cpy$ = INKEY$(-1) 
1440 PRINT cpy$: IF cpy$ == "Y" OR cpy$ == "N" THEN EXIT to_disk 
1450 END REPeat to_disk 


If option is to copy, select the drive here. 


1460: 

1470 IF cpy$ == "Y" THEN 

1480 REPeat drive 

1490 PRINT \Copy to which drive ? (1/2) ';: drv$ = INKEY$(-1) 
1500 PRINT drv$: IF drv$ == "1" OR drv$ == "2" THEN EXIT drive 
1510 END REPeat drive 

1520 COPY namel$ TO ‘flp' & drv$ & '_' & name$ 

1530 END IF 

1540: 


Option to keep or delete the file on ram disk. 
1550 REPeat delet 


1560 PRINT \Delete '; name 
1570 PRINT kill$: IF kill$ == 


"2 (Y/N) 'j: Kill$ = INKEYS(-1) 
OR kill$ == "N" THEN EXIT delet 


67 


1580 END REPeat delet 
COPYING MSDOS FILES - cont'd 


1590 IF kill§ == "Y" THEN DELETE name1$: PRINT \name1$; ' deleted.\\ 
1600 : 


Avoids those nasty “in use" remarks by the computer. 


1610 DEFine PROCedure Close45 
1620 CLOSE #4, #5 

1630 END DEFine Close45 

1640: 


Finds track, side, and sector from cluster number. The sector number is for the initial 
sector in the cluster. 


1650 DEFine PROCedure trsise(clus,tr,si,se) 
1660 LOCal x: x = clus +4 

1670 tr=INT(x/9): x =x - 9*tr 

1680 si=(x >=5): se = 2*x - 9*si 

1690 END DEFine trsise 


In Part I, I said that the only item of interest in the boot record was the DOS version; this is 
not quite right. I've also said that "generally" the file clusters follow one after the other. 
But, suppose they don't, what then ? Next time, we'll look at the boot record in gory 
detail to see just what information is available. We'll also analyze the FAT to determine 
just where all those clusters are. 


ADDITIONAL REFERENCE 
4. The Peter Norton Programmer's Guide to the IBM PC. Microsoft Press. 1985. 


FLIGHTDECK - A REVIEW 
BROOKLYN, NEW YORK, USA - JOE LA PUNZINA 


As the name implies, FLIGHTDECK is a flight simulation program for the QL. The cost 
of the program including shipping and handling is 15 Pounds Sterling. It is available from: 


DELTASOFT 

11 Dumaine Avenue 

Stoke Gifford, Bristol BS12 6XH 
United Kingdom 


The instruction manual supplied is clear and concise, and very easy to follow. A second 
copy of the manual is included on the program disk, a handy item to have if your like me, 
and like to have a copy to work with. The only difference in the disk copy is the absence 
of the figures and charts on pages 13, 14, 15, and 16. 


When using the program it's best to plan your flight ahead of time, selecting those beacons 
(for use when instrument flying to keep your aircraft headed on the proper course), and 
ILS (Instrument Landing System) frequency for final approach to the airport. Plan your 
flight from origin to destination, selecting those beacons that will keep your flight as direct 


68 


FLIGHTDECK REVIEW - cont'd 


It takes a little practice landing, as the author notes in the manual, as your flying a twin 
engine passenger plane having considerable mass, | had several mishaps in landing (I'm 
glad its just a simulation) until | got the hang of it. 


I would have liked to have found in this program the following: 


a) A compass as well as latitude and longitude grid lines on the two area 
charts. 


b) Area charts that included all of the airfields, and beacons that are listed in 
Flight Simulation programs. 


c) A locator that would pinpoint your location at any time in the flight. This 
would allow you to see how closely your following the plotted course. 
(this could also simulate ground control tracking of your aircraft). 


Inclusion of the above items would go a long way in eliminating guesswork (especially for 
someone living in a country other than Great Briton), and would be a more professional 
package. 


It would have been nice to have a demo showing the novice pilot what he could expect to 
see as he/she approached a beacon, and how to change frequencies to continue the flight. 
Seeing what could be expected as the ILS frequency is activated for the final approach toa 
successful landing. 


In conclusion, FLIGHTDECK is an interesting program and is well written. If your 
looking for a challenge, that requires you to plan ahead, and then seeing how closely you 
follow your plan, then this is your cup of tea. 


QL SPARES & REPAIRS 
NEWPORT, RHODE ISLAND, USA - BOB DYL 


A growing number of our North American readers have written us concerning SPARE 
PARTS and/or QL REPAIRS. We find that this is a worldwide concern of many QLer’s. 
Therefore the reason for this article, 


Some companies or individuals may be listed more than once, this is due to multiple 
services offered. As we have personally dealt with the great majority of the listed 
companies, we feel secure in sharing them with you all. The listings are in alphabetical 
order. 


For complete spare computers two companies come to mind. They are: 


EEC LIMITED MECHANICAL AFFINITY 
18-21 Misbourne House, Chiltern Hill 513 East Main Street 
Chalfont St. Peter, Bucks SL9 9UE Peru, IN 46970 

United Kingdom U.S.A. 

Tel: 0753 888 866 Tel: 317 473 8031 


69 


QL SPARES AND REPAIRS - cont'd 


Spare parts may be purchased from : 


ADMAN SERVICES 

53 Gilpin Road, Admanston 
Telford, Shropshire TF4 3PR 
United Kingdom 

Tel: 0952 255 895 


CARE ELECTRONICS 

15 Holland Gdns. Dept. QL 
Garston, Watford, Herts. WD2 6JN 
United Kingdom 

Tel: 0923 894 064 


COWO ELECTRONICS 
Munsterstr. 4 

CH-6210 Sursee 
Switzerland 

Tel: 045 211 478 


GUSTAFSSON KNUTSSON ELEKTRONIK 
Box 4082 

431 04 Molndal 

Sweden 

Tel: not available 


MECHANICAL AFFINITY 
513 East main St. 

Peru, IN 46970 

U.S.A. 

Tel: 317 473 8031 


SUREDATA 

Unit 6, Stanley House 
Wembley, Middx. HAO 4JBQ 
United Kingdom 

Tel: 01 902 5218 


JOE ATKINSON 

36 Ranelagh Road 
Ealing, London W5 SRJ 
United Kingdom 

Tel: not available 


COMPUTER CLASSICS 
RR 1, Box 117 

Cabool, MO 65689 
U.S.A, 

Tel: 417 469 4571 


EEC LIMITED 

18-21 Misbourne House,Chiltern Hill 
Chalfont St.Peter, Bucks SL9 9UE 
United Kingdom 

Tel: 0753 888 866 


JOCHEN MERZ SOFTWARE 
Im Stillen Winkel 12 

W-4100 Duisburg 11 
Germany 

Tel: 0203 501 274 


OMNIDALE LIMITED 
23 Curzon Street 
Derby DEI 2ES 
United Kingdom 

Tel: 0332 291 219 


TF SERVICES 

12 Bouverie Place 
London 

United Kingdom 
Tel: 071 724 9053 


Last but not the least, is a listing of companies and individuals who do QL repairs: 


ADMAN SERVICES 

53 Gilpin Road, Admanston 
Telford, Shropshire TF4 3PR 
United Kingdom 

Tel: 0952 255 895 


COWO ELECTRONICS 
Munsterstr. 4 

CH-6210 Sursee 
Switzerland 

Tel: 045 211 478 


70 


COMPUTER CLASSICS 
RR 1, Box 117 

Cabool, MO 65689 
U.S.A. 

Tel: 417 469 4571 


ROBERT GILDER 

69 Jefferson Place 
Massapequa, NY 11758 
U.S.A. 

Tel: 516 541 2271 


QL SPARES AND REPAIRS - cont'd 


QUANTUM ELECTRONIC SERVICES MECHANICAL AFFINITY 
33 City Arcade 513 East Main Street 
Coventry CV1 3HX Peru, IN 46970 

United Kingdom U.S.A. 

Tel: 0203 224 632 Tel: 317 473 8031 
SUREDATA 


Unit 6, Stanley House 
Wembley, Middx. HAO 4JBQ 
Tel: 01 902 5218 


At the time of writing, all of the companies and individuals listed were servicing the QL 
community. This article does not purport to list all of those servicing the QL, but those 
who come to mind. 


In addition, many USER GROUPS offer these services to their members (a good reason to 
join a group). A few that I know of are: 


N.A.S.A QITALY CLUB SINCLAIR QL USER CLUB e.V. 
Nerheim Via Brescia 26 Talstrasse 21 

N-5580 Olen 25039 Travgliato (BRESCIA) W-5460 OCKENFELS 

Norway Italy Germany 


We hope the information contained in this article is useful to those of you who might 
require the help offered by the companies and individuals listed. 


THE LONELY JOKER 
TIVERTON, RHODE ISLAND, USA - DICK TAYLOR 


The Lonely Joker is an excellent implementation of the card game Solitaire (Patience). 
When used with a mouse, this version is certainly equal to or better than the ones bundled 
with "Windows" for the IBM or commonly found on the Macintosh. 


The Lonely Joker was developed by the Hit & Do Development Team in Portugal in 
conjunction with Jochen Merz of Germany. The program package comes on a single disk 
and includes a seven page manual (approximately 4" x 5"). The type on the instruction 
manual is very small, and as my eyesight is no longer what it was when I was younger, 
coupled with a tendency to keep the area around my computer fairly dark, made for very 
difficult reading. I finally ended up enlarging the instructions to 8.5" x 11". To be fair, 
you really don't need the instructions if you are familiar with the rules and objectives of the 
three different variants, (Echelon, Napoleon and Cascade). 


The Lonely Joker requires QJump's Pointer Environment, Jochen Merz's Menu 
extensions, (both included on the disk), Super Toolkit II and at least 256Kb of memory 
expansion. The games are considerably more playable by using the QIMI Mouse although 
they can be played using a joystick or the keyboard alone. If you don't have a QIMI 
interface, this game alone would make it worth while obtaining it, or the serial mouse 
driver (also from Jochen Merz), reviewed in the last issue of IQLR. I found that when 
using the joystick or cursor keys that cursor movement slowed down considerably when 
you were in the vicinity of the "deck". This was not noticeable when using the mouse. 


71 


LONELY JOKER - cont'd 


The Lonely Joker when used with QPAC2 can be put to sleep (close down the application 
onto a button) and later awakened by clicking on the button with the mouse or hitting the 
<ENTER> key when the cursor is over the button. 


The program comes bundled with a good configuration program, (QJumps standard 
configuration utility), that allows you to easily change the startup parameters such as the 
initial game type, the board color, warning beep, maximum number of turns and whether a 
Queen can be placed over a King (Cascade only). 


These options as well as several others are also available within each game on pulldown 
menus from a menu bar across the top of the screen. Additional options include; saving or 
loading a previously saved game, auto finish, which when set will allow The Lonely Joker 
to finish the game for you as soon as it determines that the game can be completed, the 
number of turns through the deck that will be allowed in Echelon 1 and 3 and if you want a 
tedeal. 


The screen resolution of the cards is excellent although I found it to be considerably better 
on the black screen than the green which is the default. The green is the standard QL green 
and is a little too bright. If the green could be darkened with a stipple pattern to something 
closer to the color of the felt on a pool table, I think it would make a tremendous difference 
in the contrast. When you reach the end of an unwon game a message pops up on the 
screen informing you of the number of cards left. This message is in white and difficult to 
read against the green background. This is not a problem with the black screen. I also 
found that it was slightly more difficult to distinguish between clubs and spades against the 
green than against the black. I don't want to form the wrong impression, certainly the 
green screen is very playable and in any case can be easily changed to black if you prefer. 


THE GAMES 


Echelon 1: This is the standard classic solitaire card game with 28 cards dealt face down 
into seven ranks and the last card dealt face up on each rank. The remaining cards are 
placed face down and form the deck. The object is to form four foundations (one for each 
suit ) and build them sequentially from the Ace through the King. This is accomplished by 
moving cards from the ranks and the closed deck onto the foundations. When you have no 
moves from the ranks, you can turn the next card over on the closed deck. Once you have 
tun through the closed deck you can turn the cards and start through the deck again. This 
can be limited to allow you to only go through the deck two or three times. 


This game can be played against time taken to solve, but I think it could be enhanced with 
the addition of a casino option where you pay 52 dollars, (marks, pounds, francs, etc.) for 
the deck and receive 5 dollars, (marks, pounds, francs, etc.) for every card placed on the 
foundation. This win or loss would carry forward from game to game. The most money 
won could then be written to a high score table. 


Echelon 3: This game is similar to Echelon 1, except three cards at a time are turned over 
from the closed deck. (Bob Dyl has completed this game in 2 minutes 49 seconds with a 
mouse and playing left-handed, (he's right-handed). He challenges anyone to beat this 
time). 


Napoleon: This game known as the "King of patiences" was supposably created by 
Napoleon during his exile on the isle of Sainte Helene. This game is different in that all the 


72 


LONELY JOKER - cont'd 


cards are placed face up. The documentation for this game had*some errors in it. The 
examples didn't match the illustration and I was unable to completely figure out the rules 
for manipulating the cards onto the foundations. As I understand the instructions, Lonely 
Joker will move a card placed temporarily in the cellar onto an open space in the bottom 
rank. I was unable to get this to happen and consequently was unable to get very far with 
this game. I am unsure if this was a bug in the program, incompatibility with GOLD 
CARD/MINERVA, or much more likely, operator error. 


Cascade: This is the simplest of the three games as far as strategy goes, but the hardest to 
finish. The cards are laid out in seven ranks of five cards each (face up), a single card face 
up which forms the pile, and the remainder of the cards face down in a stack. The object is 
to place all cards on a single pile. The card placed on the pile must be immediately of a 
higher or lower value than the top card (without regard to suit or color). The only 
exceptions to this is that no card may be placed on a King and only a Two can be placed on 
an Ace. 


The Lonely Joker is a program that will provide many hours of enjoyment and I would 
unequivocally recommend it to anyone. 


ESTATE SALE 


We have recently been notified of the availability of a Miracle Systems GOLD CARD with 
the latest version of the ROM for $325. If you think you might be interested, contact Bob 
at IQLR. 


INTERNATIONAL COMPUTER GLOSSARY 
TIVERTON, RHODE ISLAND, U.S.A. - DICK TAYLOR 


I thought this might be a good time to bring you up to date on the status of the International 
Computer Glossary, especially to those that worked so hard to provide input and resolve 
discrepancies. 


This project has grown considerably from what I had first envisioned as well as taking 
much longer than expected. In it's initial publication, the glossary will be comprised of 
eight languages, English, German, Italian, Spanish, Dutch, Norwegian, Swedish and 
French. 


The major delay to publication right now is the receipt of the French and Swedish 
translations, which are both being worked on. 


The response was overwhelming and for some languages I received four different sets of 
translations. This was often a mixed blessing as seldom did they agree. This led to 
additional correspondence to try and arrive at the best of the available choices. 


One of the other problems we encountered was that often, there is no one word equivalency 
between the languages. Another problem is how the word is being used, i.e. verb, noun, 
adjective, transitive verb, etc. This all had to be judged against the main objective of the 
project, which was to allow the QL community worldwide to replace the on-screen text and 


73 


GLOSSARY - cont'd 


prompts of public domain software written in various other languages. 


Six of the languages are in the database and we hope to start distribution of the Glossary 
shortly after receiving the two missing translations. 


SUBSCRIPTIONS / ADVERTISEMENTS 


IQLR is published by SeaCoast Services of 15 Kilburn Court, Newport, Rhode Island, 
USA. Our telephone number is 401-849-3805, business hours are 10:00 AM to 9:00 PM 
Eastern Standard Time, (1500 - 0100 GMT) Monday through Saturday. 


ALL material published in IQLR remains the property of SeaCoast Services, and is 
COPYRIGHTED, unless otherwise specified. Written permission from SeaCoast Services 
IS REQUIRED for use of material printed in IQLR. 

SUBSCRIPTION RATES: $14.95 per year (US FUNDS) for the US, $16.95 per year 
(US FUNDS) for Canada, and $28.00 per year (US FUNDS) the rest of the World. 
Single issue rates are $5.00 (US FUNDS). We will accept Pounds Sterling or DM bank 
notes (currency) equivalent to the US $ amount. 


IQLR is published 4 to 6 times per year, with individual issue size determined by the 
amount of available material. Our subscription year is 1 May through 30 APRIL. 


Mid-year subscribers will be sent back issues for the current year. 


ADVERTISING RATES: $15.00 DM25 £10 per QUARTER PAGE per issue. 
$25.00 DM40 £15 per HALF PAGE per issue. 
$50.00 DM80 £30 per FULL PAGE per issue. 


ADVERTISING DEADLINE FOR THE NEXT ISSUE IS 20 AUGUST 
SUBMISSIONS DEADLINE FOR THE NEXT ISSUE IS 10 AUGUST 


IQLR WILL REVIEW OR RETURN ANY COMMERCIAL HARDWARE AND 
SOFTWARE SUBMITTED. 


AVAILABLE FROM IQLR: 

QL SURVIVOR'S SOURCE BOOK including P & H $10.95 
Spiral bound VOL. 1 of IQLR including P & H $15.95 
Back issues of QL WORLD $ 4.00 ea 


DISCLAIMER: SeaCoast Services reserves the right to publish, edit, or reject any 
submitted material, and under no circumstances will SeaCoast Services be liable for any 
direct, indirect, or consequential damage or loss arising out of the use or inability to use, 
software or hardware related items published in IQLR. 


74 


PAGE DESIGNER 2+ 


A COMPREHENSIVE DESKTOP PUBLISHING PROGRAM FOR THE EXPANDED QL 
written by Dilwyn Jones 


Page Designer 2 Plus puts desktop publishing 
on the QL within the reach of everyone, at an 
affordable price. It provides features found 

on other computer systems costing many times 
the price, including full WYSIWYG (what you 
see is what you get). It comes with a compre- 
hensive manual, if you enjoy reading such 
things! 


Multiple pages of any size (within reason!) can 
be created and printed by Epson-compatible 
printers. The control codes used in the printer 
driver can be changed if the supplied driver is 
not suitable for your printer. Both 9 pin and 24 
pin dot-matrix printer drivers are supplied and 
we are working on drivers for other types of 
printers. 


Text can be arranged in columns like this, either 
manually typed or imported from a Quill_doc 
file or from a plain text file from other word 
processors. Text can be left, right, or center 
justified irrespective of what was used when the 
file was prepared. 


PD2 Plus has comprehensive CUT and PASTE 
facilities, not to mention hires text in various 
sizes (unlike the previous version of PD2) for 
headings, etc. It has some graphics functions 
such as lines, boxes and circles, or you can 
import screens from a graphics program such as 
The Painter, PictureMaster, or Eye-Q. 


A page preview mode displays an entire page in 
miniature on the screen so you can check the 
overall layout as work progresses. 

Text and graphics can be freely mixed. You 
can even add a border to the pages. 


ALL MAJOR CREDIT CARDS ACCEPTED 


PD2 PLUS COSTS ONLY 
£40.00 FROM:- 


Several pages can be used at once, provided 
you have enough free memory. Up to four 
colors can be used (and printed, if you have 


a color printer! 
printer] WHY STRUGGLE? 


As you can see, ff *S 
text & graphics 
can be mixed. 


Several fonts, 
some clipart 
pictures and 
conversion 
utilities for 
converting files use 

from other |] PAGE DESIGNER 2+ 
promt are bem come 
all supplied. Font editors are supplied so 
that you can create additional fonts yourself. 


The program can run in the pointer 
environment, (although it does not use the 
pointer interface itself) and is Minerva 
compatible. It is also Taskmaster 
compatible. 


You can save screens from within PD2 Plus 
for use with other programs. PD2+ can be 
configured to load specific sets of fonts 

and patterns and set the default page sizes, 
automatically when it starts up, to save 
time. 


Above all, it has been designed to be 
extremely easy to use. 


PD2 PLUS REQUIRES A FLOPPY DISK 
OR HARD DISK SYSTEM WITH AT 
LEAST 512K OF RAM MEMORY ON 
YOUR QL (OR COMPATIBLE). IT 
CANNOT BE SUPPLIED ON MICRO- 
DRIVE CARTRIDGE. 


! UPGRADE FROM EARLIER VER- 
| SIONS AVAILABLE FOR ONLY 

£ 20.00 IF YOU SUPPLY PROOF OF 
| PURCHASE 


DILWYN JONES COMPUTING, 41 BRO EMRYS, TAL-Y-BONT, BANGOR, 


GWYNEDD, GREAT BRITAIN, LLS7 3YT 


TELEPHONE: BANGOR (0248) 354023 


DILWYN JONES COMPUTING 


41 BRO EMRYS, TAL-Y-BONT, BANGOR, GWYNEDD, GREAT BRITAIN, LLS7 3 YT 
TELEPHONE: 0248-354023 

WE SELL A WIDE RANGE OF SINCLAIR QL SOFTWARE, PROGRAMS WE PUBLISH OURSELVES AND THIRD PARTY 

SOFTWARE. MOST ITEMS ARE HELD IN STOCK WHERE POSSIBLE, BUT WE WILL OF COURSE ORDER ANY ITEM NOT 

CURRENTLY IN STOOCK AND QUOTE YOU A DELIVERY TIME. 


ASK FOR A COPY OF OUR QL PRODUCTS CATALOGUE, FREE ON REQUEST. IT CONTAINS MORE DETAILS 
OF OUR SOFTWARE AND SOME SCREEN PICTURES FROM THE PROGRAMS. 


SOME OF OUR SOFTWARE IS AVAILABLE FROM EMSOFT IN THE U.S.A., QITALY CLUB IN ITALY, JURGEN FALKENBURG 
AND QLYMPIC COMPUTER SYSTEMS IN GERMANY. OR YOU CAN ORDER DIRECT FROM US, OF COURSE. IF CONTACTING 
US BY TELEPHONE, REMEMBER THE UK IS 5 TO 8 HOURS AHEAD OF THE U.S.A. WE HAVE AN ANSWERING MACHINE FOR 
WHEN WE CAN'T ANSWER IN PERSON AND WE DO TRY TO CALL YOU BACK IF REQUIRED. 


WE CAN ACCEPT ORDERS BY TELEPHONE, PAID FOR BY CREDIT CARD FOR LOW EXCHANGE COSTS AND QUICK 
DELIVERY. WHY NOT CLUB TOGETHER TO BUY PROGRAMS AT REDUCED COSTS AND TAKE ADVANTAGE OF QUANTITY 
DISCOUNTS (5% DISCOUNT FOR 2 PROGRAMS, 10% FOR THREE OR MORE). PLEASE ADD 2.00 POUNDS STERLING PER 


PROGRAM ON MICRODRIVE CARTRIDGE. 


PAYMENT BY CREDIT CARD (ACCESS, VISA, MASTERCARD, EUROCARD, CONNECT), 
EUROCHEQUE (IN POUNDS STERLING), INTERNATIONAL POSTAL MONEY ORDER, CASH, 
CHEQUE IN POUNDS STERLING DRAWN ON UK BRANCH OF A BANK OR BUILDING 


SOCIETY 


ALL PRICES IN THIS ADVERT ARE IN UK POUNDS STERLING CURRENCY. 
POSTAGE - SOFTWARE POST FREE IN THE UK, ADD I POUND PER PROGRAM TO OTHER 


COUNTRIES 


DISPLAY SOFTWARE 
VISION MIXER 1..... 
VISION MIXER PLUS 
UPGRADE VM1 TO VM+. 
PICTUREMASTER....... 
PICTUREMASTER PLUS. 


FILE TRANSFER 


LEISURE 
CRICKET SECRETARY.. 
QUESTION MASTER... 


THE PAINTER 4.04... 
(HP Deskjet printer option) 


IMAGE PROCESSOR V2. 
UPGRADE TO VERSION 2. 


FILE HANDLING 
FILES 2... 
FILEMASTER.. 


BUDGET GENEALOGIST. 
SUPER DISK INDEXER... 


THE CLIPART.. OTHER SOFTWARE 
QRACTAL.. HOME BUDGET (UK).......00ssssssssssssss00s 20.00 
DEMO QRACTAL SCREEN: REMIND ME... 12.00 


SCREEN ECONOMISER. 
SLOWGOLD slow down.. 
TASKMASTER..... 

FLOPPY DISC LABELLER. 


(ready during the summer) 
MINI PROCESS CONTROLLER 


SOFTWAREUTILITY.. 


THE GOPHER NETWORK PROVER BOX.. 
WINBACK V2.0 

LABELS 
DLP: 100 disk labels... 
PAGE DESIGNER 2+.. 100 m'drive label: 
PD2UPGRADE..... ROBROY SOFTWAREPACK.... 100 address labels. 


ALL PRICES SHOWN ARE POUNDS STERLING 


(